<?php
	if (isset($_GET["usuario"]) && isset($_GET["senha"])) {
		include_once './UsuarioDAO.php';	
		include_once './Usuario.php';
		include_once './Retorno.php';
		
		date_default_timezone_set('America/Sao_Paulo');
		
		$usuarioDAO = new UsuarioDAO();
		$usuario = new Usuario($_GET["usuario"],$_GET["senha"],null, null, null, null);
		$retorno = new Retorno();

		$result = $usuarioDAO->getUsuario($usuario);
		if($result["query"]->num_rows == 0){
			$retorno->setOk(false);
			$retorno->setId(0);
			$retorno->setTexto('Usuário não cadastrado!');
		}else{
			if($result["usuario"]->getSenha() == $usuario->getSenha()){
				if($result["usuario"]->getHora_desbloqueio() > date("H:i:s")){
					$retorno->setOk(false);
					$retorno->setId($result["usuario"]->getId());
					$retorno->setTexto('Usuário bloqueado por excesso de tentatívas, tente novamente mais tarde!');							
				}else{
					$diaDaSemana = date("w");
					if($diaDaSemana == 0 || $diaDaSemana == 6){
						$retorno->setOk(false);
						$retorno->setId($result["usuario"]->getId());
						$retorno->setTexto('Não é permitido efetuar login nos finais de semana!');					
					}else{
						$result["usuario"]->setData_ultimo_login(date("Y-m-d"));
						$result["usuario"]->setHora_bloqueio('');
						$result["usuario"]->setHora_desbloqueio('');
						$usuarioDAO->update($result["usuario"]);				
						$retorno->setOk(true);
						$retorno->setId($result["usuario"]->getId());
						$retorno->setTexto('autenticado com sucesso');		
					}
				}
			}else{
				$result["usuario"]->setQuantidade_tentativas($result["usuario"]->getQuantidade_tentativas() + 1);
				$result["usuario"]->setData_ultimo_login(date("Y-m-d"));				
				if($result["usuario"]->getQuantidade_tentativas() == 3){
					$mensagem = "Usuário bloqueado por excesso de tentatívas, tente novamente mais tarde!";
					$result["usuario"]->setHora_bloqueio(date("H:i:s"));
					$result["usuario"]->setHora_desbloqueio(date('H:i:s', strtotime('+60 minute', strtotime($result["usuario"]->getHora_bloqueio()))));
					$result["usuario"]->setQuantidade_tentativas(0);
					$usuarioDAO->update($result["usuario"]);
				}elseif($result["usuario"]->getHora_desbloqueio() > date("H:i:s")){
					$mensagem = "Usuário bloqueado por excesso de tentatívas, tente novamente mais tarde!";				
				}else{
					$mensagem = "Está é a ".$result["usuario"]->getQuantidade_tentativas()."a tentativa incorreta!";
					$usuarioDAO->update($result["usuario"]);
				}
		
				$retorno->setOk(false);
				$retorno->setId($result["usuario"]->getId());
				$retorno->setTexto($mensagem);			
			}
		}
		echo $retorno->to_json();
	}
?>